1 /*
2 
3 Boost Software License - Version 1.0 - August 17th, 2003
4 
5 Permission is hereby granted, free of charge, to any person or organization
6 obtaining a copy of the software and accompanying documentation covered by
7 this license (the "Software") to use, reproduce, display, distribute,
8 execute, and transmit the Software, and to prepare derivative works of the
9 Software, and to permit third-parties to whom the Software is furnished to
10 do so, all subject to the following:
11 
12 The copyright notices in the Software and this entire statement, including
13 the above license grant, this restriction and the following disclaimer,
14 must be included in all copies of the Software, in whole or in part, and
15 all derivative works of the Software, unless such copies or derivative
16 works are solely in the form of machine-executable object code generated by
17 a source language processor.
18 
19 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
22 SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
23 FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
24 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
25 DEALINGS IN THE SOFTWARE.
26 
27 */ 
28 
29 module derelict.purple.account;
30 
31 import derelict.glib.gtypes;
32 import derelict.glib.glibconfig;
33 import derelict.glib.ghash;
34 import derelict.glib.glist;
35 import derelict.glib.gslist;
36 import derelict.purple.log;
37 import derelict.purple.status;
38 import derelict.purple.connection;
39 import derelict.purple.proxy;
40 import derelict.purple.privacy;
41 import derelict.purple.blist;
42 import derelict.purple.status;
43 
44 extern (C):
45 
46 alias _PurpleAccountUiOps PurpleAccountUiOps;
47 alias _PurpleAccount PurpleAccount;
48 alias int function (_PurpleAccount*) PurpleFilterAccountFunc;
49 alias void function (void*) PurpleAccountRequestAuthorizationCb;
50 alias void function (_PurpleAccount*, int, void*) PurpleAccountRegistrationCb;
51 alias void function (_PurpleAccount*, int, void*) PurpleAccountUnregistrationCb;
52 alias void function (_PurpleAccount*, const(char)*) PurpleSetPublicAliasSuccessCallback;
53 alias void function (_PurpleAccount*, const(char)*) PurpleSetPublicAliasFailureCallback;
54 alias void function (_PurpleAccount*, const(char)*) PurpleGetPublicAliasSuccessCallback;
55 alias void function (_PurpleAccount*, const(char)*) PurpleGetPublicAliasFailureCallback;
56 alias _Anonymous_0 PurpleAccountRequestType;
57 alias _Anonymous_1 PurpleAccountRequestResponse;
58 
59 enum _Anonymous_0
60 {
61 	PURPLE_ACCOUNT_REQUEST_AUTHORIZATION = 0
62 }
63 
64 enum _Anonymous_1
65 {
66 	PURPLE_ACCOUNT_RESPONSE_IGNORE = -2,
67 	PURPLE_ACCOUNT_RESPONSE_DENY = -1,
68 	PURPLE_ACCOUNT_RESPONSE_PASS = 0,
69 	PURPLE_ACCOUNT_RESPONSE_ACCEPT = 1
70 }
71 
72 struct _PurpleAccountUiOps
73 {
74 	void function (PurpleAccount*, const(char)*, const(char)*, const(char)*, const(char)*) notify_added;
75 	void function (PurpleAccount*, PurpleStatus*) status_changed;
76 	void function (PurpleAccount*, const(char)*, const(char)*, const(char)*, const(char)*) request_add;
77 	void* function (PurpleAccount*, const(char)*, const(char)*, const(char)*, const(char)*, gboolean, PurpleAccountRequestAuthorizationCb, PurpleAccountRequestAuthorizationCb, void*) request_authorize;
78 	void function (void*) close_account_request;
79 	void function () _purple_reserved1;
80 	void function () _purple_reserved2;
81 	void function () _purple_reserved3;
82 	void function () _purple_reserved4;
83 }
84 
85 struct _PurpleAccount
86 {
87 	char* username;
88 	char* alias_;
89 	char* password;
90 	char* user_info;
91 	char* buddy_icon_path;
92 	gboolean remember_pass;
93 	char* protocol_id;
94 	PurpleConnection* gc;
95 	gboolean disconnecting;
96 	GHashTable* settings;
97 	GHashTable* ui_settings;
98 	PurpleProxyInfo* proxy_info;
99 	GSList* permit;
100 	GSList* deny;
101 	PurplePrivacyType perm_deny;
102 	GList* status_types;
103 	PurplePresence* presence;
104 	PurpleLog* system_log;
105 	void* ui_data;
106 	PurpleAccountRegistrationCb registration_cb;
107 	void* registration_cb_user_data;
108 	gpointer priv;
109 }
110 
111 version(Derelict_Link_Static)
112 {
113     extern( C ) nothrow 
114     {
115         PurpleAccount* purple_account_new(const(char)* username, const(char)* protocol_id);
116         void purple_account_destroy(PurpleAccount* account);
117         void purple_account_connect(PurpleAccount* account);
118         void purple_account_set_register_callback(PurpleAccount* account, PurpleAccountRegistrationCb cb, void* user_data);
119         void purple_account_register(PurpleAccount* account);
120         void purple_account_unregister(PurpleAccount* account, PurpleAccountUnregistrationCb cb, void* user_data);
121         void purple_account_disconnect(PurpleAccount* account);
122         void purple_account_notify_added(PurpleAccount* account, const(char)* remote_user, const(char)* id, const(char)* alias_, const(char)* message);
123         void purple_account_request_add(PurpleAccount* account, const(char)* remote_user, const(char)* id, const(char)* alias_, const(char)* message);
124         void* purple_account_request_authorization(PurpleAccount* account, const(char)* remote_user, const(char)* id, const(char)* alias_, const(char)* message, gboolean on_list, PurpleAccountRequestAuthorizationCb auth_cb, PurpleAccountRequestAuthorizationCb deny_cb, void* user_data);
125         void purple_account_request_close_with_account(PurpleAccount* account);
126         void purple_account_request_close(void* ui_handle);
127         void purple_account_request_password(PurpleAccount* account, GCallback ok_cb, GCallback cancel_cb, void* user_data);
128         void purple_account_request_change_password(PurpleAccount* account);
129         void purple_account_request_change_user_info(PurpleAccount* account);
130         void purple_account_set_username(PurpleAccount* account, const(char)* username);
131         void purple_account_set_password(PurpleAccount* account, const(char)* password);
132         void purple_account_set_alias(PurpleAccount* account, const(char)* alias_);
133         void purple_account_set_user_info(PurpleAccount* account, const(char)* user_info);
134         void purple_account_set_buddy_icon_path(PurpleAccount* account, const(char)* path);
135         void purple_account_set_protocol_id(PurpleAccount* account, const(char)* protocol_id);
136         void purple_account_set_connection(PurpleAccount* account, PurpleConnection* gc);
137         void purple_account_set_remember_password(PurpleAccount* account, gboolean value);
138         void purple_account_set_check_mail(PurpleAccount* account, gboolean value);
139         void purple_account_set_enabled(PurpleAccount* account, const(char)* ui, gboolean value);
140         void purple_account_set_proxy_info(PurpleAccount* account, PurpleProxyInfo* info);
141         void purple_account_set_privacy_type(PurpleAccount* account, PurplePrivacyType privacy_type);
142         void purple_account_set_status_types(PurpleAccount* account, GList* status_types);
143         void purple_account_set_status(PurpleAccount* account, const(char)* status_id, gboolean active, ...);
144         void purple_account_set_status_list(PurpleAccount* account, const(char)* status_id, gboolean active, GList* attrs);
145         void purple_account_set_public_alias(PurpleAccount* account, const(char)* alias_, PurpleSetPublicAliasSuccessCallback success_cb, PurpleSetPublicAliasFailureCallback failure_cb);
146         void purple_account_get_public_alias(PurpleAccount* account, PurpleGetPublicAliasSuccessCallback success_cb, PurpleGetPublicAliasFailureCallback failure_cb);
147         gboolean purple_account_get_silence_suppression(const(PurpleAccount)* account);
148         void purple_account_set_silence_suppression(PurpleAccount* account, gboolean value);
149         void purple_account_clear_settings(PurpleAccount* account);
150         void purple_account_remove_setting(PurpleAccount* account, const(char)* setting);
151         void purple_account_set_int(PurpleAccount* account, const(char)* name, int value);
152         void purple_account_set_string(PurpleAccount* account, const(char)* name, const(char)* value);
153         void purple_account_set_bool(PurpleAccount* account, const(char)* name, gboolean value);
154         void purple_account_set_ui_int(PurpleAccount* account, const(char)* ui, const(char)* name, int value);
155         void purple_account_set_ui_string(PurpleAccount* account, const(char)* ui, const(char)* name, const(char)* value);
156         void purple_account_set_ui_bool(PurpleAccount* account, const(char)* ui, const(char)* name, gboolean value);
157         gboolean purple_account_is_connected(const(PurpleAccount)* account);
158         gboolean purple_account_is_connecting(const(PurpleAccount)* account);
159         gboolean purple_account_is_disconnected(const(PurpleAccount)* account);
160         const(char)* purple_account_get_username(const(PurpleAccount)* account);
161         const(char)* purple_account_get_password(const(PurpleAccount)* account);
162         const(char)* purple_account_get_alias(const(PurpleAccount)* account);
163         const(char)* purple_account_get_user_info(const(PurpleAccount)* account);
164         const(char)* purple_account_get_buddy_icon_path(const(PurpleAccount)* account);
165         const(char)* purple_account_get_protocol_id(const(PurpleAccount)* account);
166         const(char)* purple_account_get_protocol_name(const(PurpleAccount)* account);
167         PurpleConnection* purple_account_get_connection(const(PurpleAccount)* account);
168         const(gchar)* purple_account_get_name_for_display(const(PurpleAccount)* account);
169         gboolean purple_account_get_remember_password(const(PurpleAccount)* account);
170         gboolean purple_account_get_check_mail(const(PurpleAccount)* account);
171         gboolean purple_account_get_enabled(const(PurpleAccount)* account, const(char)* ui);
172         PurpleProxyInfo* purple_account_get_proxy_info(const(PurpleAccount)* account);
173         PurplePrivacyType purple_account_get_privacy_type(const(PurpleAccount)* account);
174         PurpleStatus* purple_account_get_active_status(const(PurpleAccount)* account);
175         PurpleStatus* purple_account_get_status(const(PurpleAccount)* account, const(char)* status_id);
176         PurpleStatusType* purple_account_get_status_type(const(PurpleAccount)* account, const(char)* id);
177         PurpleStatusType* purple_account_get_status_type_with_primitive(const(PurpleAccount)* account, PurpleStatusPrimitive primitive);
178         PurplePresence* purple_account_get_presence(const(PurpleAccount)* account);
179         gboolean purple_account_is_status_active(const(PurpleAccount)* account, const(char)* status_id);
180         GList* purple_account_get_status_types(const(PurpleAccount)* account);
181         int purple_account_get_int(const(PurpleAccount)* account, const(char)* name, int default_value);
182         const(char)* purple_account_get_string(const(PurpleAccount)* account, const(char)* name, const(char)* default_value);
183         gboolean purple_account_get_bool(const(PurpleAccount)* account, const(char)* name, gboolean default_value);
184         int purple_account_get_ui_int(const(PurpleAccount)* account, const(char)* ui, const(char)* name, int default_value);
185         const(char)* purple_account_get_ui_string(const(PurpleAccount)* account, const(char)* ui, const(char)* name, const(char)* default_value);
186         gboolean purple_account_get_ui_bool(const(PurpleAccount)* account, const(char)* ui, const(char)* name, gboolean default_value);
187         PurpleLog* purple_account_get_log(PurpleAccount* account, gboolean create);
188         void purple_account_destroy_log(PurpleAccount* account);
189         void purple_account_add_buddy(PurpleAccount* account, PurpleBuddy* buddy);
190         void purple_account_add_buddy_with_invite(PurpleAccount* account, PurpleBuddy* buddy, const(char)* message);
191         void purple_account_add_buddies(PurpleAccount* account, GList* buddies);
192         void purple_account_add_buddies_with_invite(PurpleAccount* account, GList* buddies, const(char)* message);
193         void purple_account_remove_buddy(PurpleAccount* account, PurpleBuddy* buddy, PurpleGroup* group);
194         void purple_account_remove_buddies(PurpleAccount* account, GList* buddies, GList* groups);
195         void purple_account_remove_group(PurpleAccount* account, PurpleGroup* group);
196         void purple_account_change_password(PurpleAccount* account, const(char)* orig_pw, const(char)* new_pw);
197         gboolean purple_account_supports_offline_message(PurpleAccount* account, PurpleBuddy* buddy);
198         const(PurpleConnectionErrorInfo)* purple_account_get_current_error(PurpleAccount* account);
199         void purple_account_clear_current_error(PurpleAccount* account);
200         void purple_accounts_add(PurpleAccount* account);
201         void purple_accounts_remove(PurpleAccount* account);
202         void purple_accounts_delete(PurpleAccount* account);
203         void purple_accounts_reorder(PurpleAccount* account, gint new_index);
204         GList* purple_accounts_get_all();
205         GList* purple_accounts_get_all_active();
206         PurpleAccount* purple_accounts_find(const(char)* name, const(char)* protocol);
207         void purple_accounts_restore_current_statuses();
208         void purple_accounts_set_ui_ops(PurpleAccountUiOps* ops);
209         PurpleAccountUiOps* purple_accounts_get_ui_ops();
210         void* purple_accounts_get_handle();
211         void purple_accounts_init();
212         void purple_accounts_uninit();
213     }
214 }
215 else
216 {
217     extern( C ) nothrow 
218     {
219         alias da_purple_account_new = PurpleAccount* function(const(char)* username, const(char)* protocol_id);																																													                      
220         alias da_purple_account_destroy = void function(PurpleAccount* account);																																																				                      
221         alias da_purple_account_connect = void function(PurpleAccount* account);																																																				                      
222         alias da_purple_account_set_register_callback = void function(PurpleAccount* account, PurpleAccountRegistrationCb cb, void* user_data);																																					                      
223         alias da_purple_account_register = void function(PurpleAccount* account);																																																				                      
224         alias da_purple_account_unregister = void function(PurpleAccount* account, PurpleAccountUnregistrationCb cb, void* user_data);																																							                      
225         alias da_purple_account_disconnect = void function(PurpleAccount* account);																																																				                      
226         alias da_purple_account_notify_added = void function(PurpleAccount* account, const(char)* remote_user, const(char)* id, const(char)* alias_, const(char)* message);																														                      
227         alias da_purple_account_request_add = void function(PurpleAccount* account, const(char)* remote_user, const(char)* id, const(char)* alias_, const(char)* message);																														                      
228         alias da_purple_account_request_authorization = void* function(PurpleAccount* account, const(char)* remote_user, const(char)* id, const(char)* alias_, const(char)* message, gboolean on_list, PurpleAccountRequestAuthorizationCb auth_cb, PurpleAccountRequestAuthorizationCb deny_cb, void* user_data);		
229         alias da_purple_account_request_close_with_account = void function(PurpleAccount* account);																																														                              
230         alias da_purple_account_request_close = void function(void* ui_handle);																																																			                              
231         alias da_purple_account_request_password = void function(PurpleAccount* account, GCallback ok_cb, GCallback cancel_cb, void* user_data);																																		                              
232         alias da_purple_account_request_change_password = void function(PurpleAccount* account);																																														                              
233         alias da_purple_account_request_change_user_info = void function(PurpleAccount* account);																																														                              
234         alias da_purple_account_set_username = void function(PurpleAccount* account, const(char)* username);																																											                              
235         alias da_purple_account_set_password = void function(PurpleAccount* account, const(char)* password);																																											                              
236         alias da_purple_account_set_alias = void function(PurpleAccount* account, const(char)* alias_);																																													                              
237         alias da_purple_account_set_user_info = void function(PurpleAccount* account, const(char)* user_info);																																											                              
238         alias da_purple_account_set_buddy_icon_path = void function(PurpleAccount* account, const(char)* path);																																											                              
239         alias da_purple_account_set_protocol_id = void function(PurpleAccount* account, const(char)* protocol_id);																																										                              
240         alias da_purple_account_set_connection = void function(PurpleAccount* account, PurpleConnection* gc);																																											                              
241         alias da_purple_account_set_remember_password = void function(PurpleAccount* account, gboolean value);																																											                              
242         alias da_purple_account_set_check_mail = void function(PurpleAccount* account, gboolean value);																																													                              
243         alias da_purple_account_set_enabled = void function(PurpleAccount* account, const(char)* ui, gboolean value);																																									                              
244         alias da_purple_account_set_proxy_info = void function(PurpleAccount* account, PurpleProxyInfo* info);																																											                              
245         alias da_purple_account_set_privacy_type = void function(PurpleAccount* account, PurplePrivacyType privacy_type);																																								                              
246         alias da_purple_account_set_status_types = void function(PurpleAccount* account, GList* status_types);																																											                              
247         alias da_purple_account_set_status = void function(PurpleAccount* account, const(char)* status_id, gboolean active, ...);																																						                              
248         alias da_purple_account_set_status_list = void function(PurpleAccount* account, const(char)* status_id, gboolean active, GList* attrs);																																			                              
249         alias da_purple_account_set_public_alias = void function(PurpleAccount* account, const(char)* alias_, PurpleSetPublicAliasSuccessCallback success_cb, PurpleSetPublicAliasFailureCallback failure_cb);																			                              
250         alias da_purple_account_get_public_alias = void function(PurpleAccount* account, PurpleGetPublicAliasSuccessCallback success_cb, PurpleGetPublicAliasFailureCallback failure_cb);																								                              
251         alias da_purple_account_get_silence_suppression = gboolean function(const(PurpleAccount)* account);																																												                              
252         alias da_purple_account_set_silence_suppression = void function(PurpleAccount* account, gboolean value);																																										                              
253         alias da_purple_account_clear_settings = void function(PurpleAccount* account);																																																	                              
254         alias da_purple_account_remove_setting = void function(PurpleAccount* account, const(char)* setting);																																											                              
255         alias da_purple_account_set_int = void function(PurpleAccount* account, const(char)* name, int value);																																											                              
256         alias da_purple_account_set_string = void function(PurpleAccount* account, const(char)* name, const(char)* value);																																								                              
257         alias da_purple_account_set_bool = void function(PurpleAccount* account, const(char)* name, gboolean value);																																									                              
258         alias da_purple_account_set_ui_int = void function(PurpleAccount* account, const(char)* ui, const(char)* name, int value);																																						                              
259         alias da_purple_account_set_ui_string = void function(PurpleAccount* account, const(char)* ui, const(char)* name, const(char)* value);																																			                              
260         alias da_purple_account_set_ui_bool = void function(PurpleAccount* account, const(char)* ui, const(char)* name, gboolean value);																																				                              
261         alias da_purple_account_is_connected = gboolean function(const(PurpleAccount)* account);																																														                              
262         alias da_purple_account_is_connecting = gboolean function(const(PurpleAccount)* account);																																														                              
263         alias da_purple_account_is_disconnected = gboolean function(const(PurpleAccount)* account);																																														                              
264         alias da_purple_account_get_username = const(char)* function(const(PurpleAccount)* account);																																													                              
265         alias da_purple_account_get_password = const(char)* function(const(PurpleAccount)* account);																																													                              
266         alias da_purple_account_get_alias = const(char)* function(const(PurpleAccount)* account);																																														                              
267         alias da_purple_account_get_user_info = const(char)* function(const(PurpleAccount)* account);																																													                              
268         alias da_purple_account_get_buddy_icon_path = const(char)* function(const(PurpleAccount)* account);																																												                              
269         alias da_purple_account_get_protocol_id = const(char)* function(const(PurpleAccount)* account);																																													                              
270         alias da_purple_account_get_protocol_name = const(char)* function(const(PurpleAccount)* account);																																												                              
271         alias da_purple_account_get_connection = PurpleConnection* function(const(PurpleAccount)* account);																																												                              
272         alias da_purple_account_get_name_for_display = const(gchar)* function(const(PurpleAccount)* account);																																											                              
273         alias da_purple_account_get_remember_password = gboolean function(const(PurpleAccount)* account);																																												                              
274         alias da_purple_account_get_check_mail = gboolean function(const(PurpleAccount)* account);																																														                              
275         alias da_purple_account_get_enabled = gboolean function(const(PurpleAccount)* account, const(char)* ui);																																										                              
276         alias da_purple_account_get_proxy_info = PurpleProxyInfo* function(const(PurpleAccount)* account);																																												                              
277         alias da_purple_account_get_privacy_type = PurplePrivacyType function(const(PurpleAccount)* account);																																											                              
278         alias da_purple_account_get_active_status = PurpleStatus* function(const(PurpleAccount)* account);																																												                              
279         alias da_purple_account_get_status = PurpleStatus* function(const(PurpleAccount)* account, const(char)* status_id);																																								                              
280         alias da_purple_account_get_status_type = PurpleStatusType* function(const(PurpleAccount)* account, const(char)* id);																																							                              
281         alias da_purple_account_get_status_type_with_primitive = PurpleStatusType* function(const(PurpleAccount)* account, PurpleStatusPrimitive primitive);																															                              
282         alias da_purple_account_get_presence = PurplePresence* function(const(PurpleAccount)* account);																																													                              
283         alias da_purple_account_is_status_active = gboolean function(const(PurpleAccount)* account, const(char)* status_id);																																							                              
284         alias da_purple_account_get_status_types = GList* function(const(PurpleAccount)* account);																																														                              
285         alias da_purple_account_get_int = int function(const(PurpleAccount)* account, const(char)* name, int default_value);																																							                              
286         alias da_purple_account_get_string = const(char)* function(const(PurpleAccount)* account, const(char)* name, const(char)* default_value);																																		                              
287         alias da_purple_account_get_bool = gboolean function(const(PurpleAccount)* account, const(char)* name, gboolean default_value);																																					                              
288         alias da_purple_account_get_ui_int = int function(const(PurpleAccount)* account, const(char)* ui, const(char)* name, int default_value);																																		                              
289         alias da_purple_account_get_ui_string = const(char)* function(const(PurpleAccount)* account, const(char)* ui, const(char)* name, const(char)* default_value);																													                              
290         alias da_purple_account_get_ui_bool = gboolean function(const(PurpleAccount)* account, const(char)* ui, const(char)* name, gboolean default_value);																																                              
291         alias da_purple_account_get_log = PurpleLog* function(PurpleAccount* account, gboolean create);																																													                              
292         alias da_purple_account_destroy_log = void function(PurpleAccount* account);																																																	                              
293         alias da_purple_account_add_buddy = void function(PurpleAccount* account, PurpleBuddy* buddy);																																													                              
294         alias da_purple_account_add_buddy_with_invite = void function(PurpleAccount* account, PurpleBuddy* buddy, const(char)* message);																																				                              
295         alias da_purple_account_add_buddies = void function(PurpleAccount* account, GList* buddies);																																													                              
296         alias da_purple_account_add_buddies_with_invite = void function(PurpleAccount* account, GList* buddies, const(char)* message);																																					                              
297         alias da_purple_account_remove_buddy = void function(PurpleAccount* account, PurpleBuddy* buddy, PurpleGroup* group);																																							                              
298         alias da_purple_account_remove_buddies = void function(PurpleAccount* account, GList* buddies, GList* groups);																																									                              
299         alias da_purple_account_remove_group = void function(PurpleAccount* account, PurpleGroup* group);																																												                              
300         alias da_purple_account_change_password = void function(PurpleAccount* account, const(char)* orig_pw, const(char)* new_pw);																																						                              
301         alias da_purple_account_supports_offline_message = gboolean function(PurpleAccount* account, PurpleBuddy* buddy);																																								                              
302         alias da_purple_account_get_current_error = const(PurpleConnectionErrorInfo)* function(PurpleAccount* account);																																									                              
303         alias da_purple_account_clear_current_error = void function(PurpleAccount* account);																																															                              
304         alias da_purple_accounts_add = void function(PurpleAccount* account);																																																			                              
305         alias da_purple_accounts_remove = void function(PurpleAccount* account);																																																		                              
306         alias da_purple_accounts_delete = void function(PurpleAccount* account);																																																		                              
307         alias da_purple_accounts_reorder = void function(PurpleAccount* account, gint new_index);																																														                              
308         alias da_purple_accounts_get_all = GList* function();																																																	                                                      
309         alias da_purple_accounts_get_all_active = GList* function();																																															                                                      
310         alias da_purple_accounts_find = PurpleAccount* function(const(char)* name, const(char)* protocol);																																						                                                      
311         alias da_purple_accounts_restore_current_statuses = void function();																																													                                                      
312         alias da_purple_accounts_set_ui_ops = void function(PurpleAccountUiOps* ops);																																											                                                      
313         alias da_purple_accounts_get_ui_ops = PurpleAccountUiOps* function();																																													                                                      
314         alias da_purple_accounts_get_handle = void* function();																																																	                                                      
315         alias da_purple_accounts_init = void function();																																																		                                                      
316         alias da_purple_accounts_uninit = void function();																																																		                                                      
317     }
318 
319     __gshared
320     {
321         da_purple_account_new purple_account_new; 
322         da_purple_account_destroy purple_account_destroy; 
323         da_purple_account_connect purple_account_connect; 
324         da_purple_account_set_register_callback purple_account_set_register_callback; 
325         da_purple_account_register purple_account_register; 
326         da_purple_account_unregister purple_account_unregister; 
327         da_purple_account_disconnect purple_account_disconnect; 
328         da_purple_account_notify_added purple_account_notify_added; 
329         da_purple_account_request_add purple_account_request_add; 
330         da_purple_account_request_authorization purple_account_request_authorization; 
331         da_purple_account_request_close_with_account purple_account_request_close_with_account; 
332         da_purple_account_request_close purple_account_request_close; 
333         da_purple_account_request_password purple_account_request_password; 
334         da_purple_account_request_change_password purple_account_request_change_password; 
335         da_purple_account_request_change_user_info purple_account_request_change_user_info; 
336         da_purple_account_set_username purple_account_set_username; 
337         da_purple_account_set_password purple_account_set_password; 
338         da_purple_account_set_alias purple_account_set_alias; 
339         da_purple_account_set_user_info purple_account_set_user_info; 
340         da_purple_account_set_buddy_icon_path purple_account_set_buddy_icon_path; 
341         da_purple_account_set_protocol_id purple_account_set_protocol_id; 
342         da_purple_account_set_connection purple_account_set_connection; 
343         da_purple_account_set_remember_password purple_account_set_remember_password; 
344         da_purple_account_set_check_mail purple_account_set_check_mail; 
345         da_purple_account_set_enabled purple_account_set_enabled; 
346         da_purple_account_set_proxy_info purple_account_set_proxy_info; 
347         da_purple_account_set_privacy_type purple_account_set_privacy_type; 
348         da_purple_account_set_status_types purple_account_set_status_types; 
349         da_purple_account_set_status purple_account_set_status; 
350         da_purple_account_set_status_list purple_account_set_status_list; 
351         da_purple_account_set_public_alias purple_account_set_public_alias; 
352         da_purple_account_get_public_alias purple_account_get_public_alias; 
353         da_purple_account_get_silence_suppression purple_account_get_silence_suppression; 
354         da_purple_account_set_silence_suppression purple_account_set_silence_suppression; 
355         da_purple_account_clear_settings purple_account_clear_settings; 
356         da_purple_account_remove_setting purple_account_remove_setting; 
357         da_purple_account_set_int purple_account_set_int; 
358         da_purple_account_set_string purple_account_set_string; 
359         da_purple_account_set_bool purple_account_set_bool; 
360         da_purple_account_set_ui_int purple_account_set_ui_int; 
361         da_purple_account_set_ui_string purple_account_set_ui_string; 
362         da_purple_account_set_ui_bool purple_account_set_ui_bool; 
363         da_purple_account_is_connected purple_account_is_connected; 
364         da_purple_account_is_connecting purple_account_is_connecting; 
365         da_purple_account_is_disconnected purple_account_is_disconnected; 
366         da_purple_account_get_username purple_account_get_username; 
367         da_purple_account_get_password purple_account_get_password; 
368         da_purple_account_get_alias purple_account_get_alias; 
369         da_purple_account_get_user_info purple_account_get_user_info; 
370         da_purple_account_get_buddy_icon_path purple_account_get_buddy_icon_path; 
371         da_purple_account_get_protocol_id purple_account_get_protocol_id; 
372         da_purple_account_get_protocol_name purple_account_get_protocol_name; 
373         da_purple_account_get_connection purple_account_get_connection; 
374         da_purple_account_get_name_for_display purple_account_get_name_for_display; 
375         da_purple_account_get_remember_password purple_account_get_remember_password; 
376         da_purple_account_get_check_mail purple_account_get_check_mail; 
377         da_purple_account_get_enabled purple_account_get_enabled; 
378         da_purple_account_get_proxy_info purple_account_get_proxy_info; 
379         da_purple_account_get_privacy_type purple_account_get_privacy_type; 
380         da_purple_account_get_active_status purple_account_get_active_status; 
381         da_purple_account_get_status purple_account_get_status; 
382         da_purple_account_get_status_type purple_account_get_status_type; 
383         da_purple_account_get_status_type_with_primitive purple_account_get_status_type_with_primitive; 
384         da_purple_account_get_presence purple_account_get_presence; 
385         da_purple_account_is_status_active purple_account_is_status_active; 
386         da_purple_account_get_status_types purple_account_get_status_types; 
387         da_purple_account_get_int purple_account_get_int; 
388         da_purple_account_get_string purple_account_get_string; 
389         da_purple_account_get_bool purple_account_get_bool; 
390         da_purple_account_get_ui_int purple_account_get_ui_int; 
391         da_purple_account_get_ui_string purple_account_get_ui_string; 
392         da_purple_account_get_ui_bool purple_account_get_ui_bool; 
393         da_purple_account_get_log purple_account_get_log; 
394         da_purple_account_destroy_log purple_account_destroy_log; 
395         da_purple_account_add_buddy purple_account_add_buddy; 
396         da_purple_account_add_buddy_with_invite purple_account_add_buddy_with_invite; 
397         da_purple_account_add_buddies purple_account_add_buddies; 
398         da_purple_account_add_buddies_with_invite purple_account_add_buddies_with_invite; 
399         da_purple_account_remove_buddy purple_account_remove_buddy; 
400         da_purple_account_remove_buddies purple_account_remove_buddies; 
401         da_purple_account_remove_group purple_account_remove_group; 
402         da_purple_account_change_password purple_account_change_password; 
403         da_purple_account_supports_offline_message purple_account_supports_offline_message; 
404         da_purple_account_get_current_error purple_account_get_current_error; 
405         da_purple_account_clear_current_error purple_account_clear_current_error; 
406         da_purple_accounts_add purple_accounts_add; 
407         da_purple_accounts_remove purple_accounts_remove; 
408         da_purple_accounts_delete purple_accounts_delete; 
409         da_purple_accounts_reorder purple_accounts_reorder; 
410         da_purple_accounts_get_all purple_accounts_get_all; 
411         da_purple_accounts_get_all_active purple_accounts_get_all_active; 
412         da_purple_accounts_find purple_accounts_find; 
413         da_purple_accounts_restore_current_statuses purple_accounts_restore_current_statuses; 
414         da_purple_accounts_set_ui_ops purple_accounts_set_ui_ops; 
415         da_purple_accounts_get_ui_ops purple_accounts_get_ui_ops; 
416         da_purple_accounts_get_handle purple_accounts_get_handle; 
417         da_purple_accounts_init purple_accounts_init; 
418         da_purple_accounts_uninit purple_accounts_uninit; 
419     }
420 }